<?php

/**
 * swoole_table 特性
性能强悍，单线程每秒可读写200万次；
应用代码无需加锁，内置行锁自旋锁，所有操作均是多线程/多进程安全，用户层完全不需要考虑数据同步问题；
支持多进程，可用于多进程之间共享数据；
使用行锁，而不是全局锁，仅当 2 个进程在同一 CPU 时间，并发读取同一条数据才会进行发生抢锁。
*/
$table = new \Swoole\Table(1024);
//新增id INT
$table->column('id', \Swoole\Table::TYPE_INT);
// 在 Table 中新增 name 列，长度为 10
$table->column('name', \Swoole\Table::TYPE_STRING, 10);
// 在 Table 中新泽 score 列
$table->column('score', \Swoole\Table::TYPE_FLOAT);
// 创建这个 Swoole Table
$table->create();

//设置key-value
$table->set('student-1',['id'=>1,'name'=>'朱磊','score'=>90]);
$table->set('student-2', ['id' => 2, 'name' => '朱磊2', 'score' => 90]);

// 如果指定 Key 值存在则打印对应 Value 值
if ($table->exist('student-1')) {
    echo "Student-" . $table->get('student-1', 'id') . ':' . $table->get('student-1', 'name').":".
    $table->get('student-1', 'score') . "\n";
}

// 自增操作
$table->incr('student-2', 'score', 5);
// 自减操作
$table->decr('student-2', 'score', 5);

// 表中总记录数
$count = $table->count();

// 删除指定表记录
$table->del('student-1');
